﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Npgsql;

namespace VoteInformationSystem.Models
{
    public class NpgsqlPolitikerBundestagRepository : IPolitikerBundestagRepository
    {
        public IEnumerable<PolitikerBundestag> GetPolitiker(int Jahr)
        {
            IList<PolitikerBundestag> politikerBundestag = new List<PolitikerBundestag>();

            using (NpgsqlConnection pgConnection = NpgsqlConnectionProvider.GetConnection())
            using (NpgsqlCommand command = new NpgsqlCommand("select \"Parteien\".\"pname\", vorname, nachname, jahrgang from ((\"Parteien\" join \"Personen\" using (idpartei)) join \"PersonenErmitteln\"(:jahr) using(idperson))", pgConnection))
            {
                command.Parameters.Add(new NpgsqlParameter("jahr", NpgsqlTypes.NpgsqlDbType.Integer));
                command.Prepare();
                command.Parameters.First<NpgsqlParameter>().Value = Jahr;
                using (NpgsqlDataReader dataReader = command.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        politikerBundestag.Add(new PolitikerBundestag() { Parteiname = dataReader.GetString(0), Vorname = dataReader.GetString(1), Nachname = dataReader.GetString(2), Jahrgang = dataReader.GetInt32(3) });
                    }
                }
            }

            return politikerBundestag;
        }
    }
}
